const express = require('express');
const router = express.Router();
const UserModel = require("../../models/UserModel");
const jwt = require("jsonwebtoken");
const { secret } = require("../../config/config");


// 注册接口
router.post("/register", (req, res) => {
    // 在数据库中查询当前账号是否存在
    UserModel.findOne({ userName: req.body.userName }).then(data => {
        // 如果可以查询到当前账号
        if (data) {
            return res.json({
                code: "2004",
                message: "账号已存在",
                data: null
            })
        }
        else {
            // 如果数据库中没有当前账号，创建新账号
            UserModel.create({ ...req.body }).then(data => {
                if (!data) {
                    return res.json({
                        code: "2003",
                        message: "格式错误",
                        data: null
                    })
                }
                res.json({
                    code: "10000",
                    message: "注册成功",
                    data: null
                })

            }).catch(err => {
                res.json({
                    code: "2002",
                    message: "调用接口失败",
                    data: null
                })
            })
        }
    }).catch(err => {
        res.json({
            code: "2002",
            message: "调用接口失败",
            data: null
        })
    })
})
router.post("/login", (req, res) => {
    UserModel.findOne({ ...req.body }).then((data) => {
        if (!data) {
            return res.json({
                code: "2001",
                message: "用户名或者密码错误或者账号不存在",
                data: null
            })
        }
        let token = jwt.sign({
            userName: data.userName,
            _id: data._id
        }, secret, {
            expiresIn: 60 * 360 * 24 * 7
        })
        res.json({
            code: "10000",
            message: "登陆成功",
            data: token +"/"+ data._id
        })
    }).catch(err => {
        res.json({
            code: "2002",
            message: "调用接口失败",
            err:err,
            data: null
        })
    })

})

module.exports = router;